SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROC [dbo].[SP_TXMVTO_CNTB_Q48]
/*-------------------------------------------------------------------*/                    
/*----- Empresa           : OFISIS S.A.                          ----*/                    
/*----- Cliente           : OFISIS S.A.                          ----*/                    
/*----- Sistema           : Contabilidad                         ----*/                    
/*----- Modulo            : Empresa                              ----*/                    
/*----- Programa          : PDB de Compras - CALCULO DE DATOS DEL DOC REFERENCIA    ----*/                            
/*----- Nombre            : SP_TXMVTO_CNTB_Q48                   ----*/                    
/*----- Script            : TXMVTO_CNTB                          ----*/                    
/*----- Desarrollado por  : PDGV                                 ----*/                    
/*----- Fecha  Creaci?n   : 06/09/2006            	               ----*/                    
/*----- Base de Datos     : MS SQL Server                        ----*/                    
/*----- Version BD        : 8.0                                  ----*/                    
/*-------------------------------------------------------------------*/                     
/*-------------------------------------------------------------------*/             
/*----- Drop proc SP_TXMVTO_CNTB_Q48                             ----*/
/*----- Grant all on SP_TXMVTO_CNTB_Q48 to PUBLIC                ----*/                    
/*----- 
EXEC SP_TXMVTO_CNTB_Q48 '01', ' ',1,2006, 8, 8, 'ANA','FEC','OFI'   
  ----*/
/*-------------------------------------------------------------------*/                    
@ISCO_EMPR        TD_VC_002,                    
@INNU_CNTB_EMPR   TD_IN_001_CONT,                    
@INNU_ANNO        TD_IN_004_ANNO,                    
@INNU_MESE_INIC   TD_IN_002_MESE,                    
@INNU_MESE_FINA   TD_IN_002_MESE,                    
@ISCO_CNTA_EMPR   TD_VC_020,
@ISTI_AUXI_EMPR   TD_VC_001,
@ISCO_AUXI_EMPR   TD_VC_020,
@ISTI_DOCU        TD_VC_003,
@ISNU_DOCU        TD_VC_020,  
@ISTI_INFO        TD_VC_003,                    
@VNIM_VALO_BASE TD_NU_016_004 OUT ,
@VNIM_VALO_IIGV TD_NU_016_004 OUT
                                    
As
Create Table #TWMVTO_APAG_0004                    
(CO_EMPR  varchar(5) NULL, --para el crosstab                
 FE_DOCU        datetime       NULL,                    
 TI_DOCU_SUNA   char(02)       NULL,                    
 TI_DOCU_CNTB   char(03)       NULL,                    
 NO_DOCU        varchar(50)    NULL,                    
 NU_DOCU        char(20)       NULL,                    
 CO_UNID_CNTB   char(03)       NULL,                    
 CO_OPRC        char(03)       NULL,                    
 NU_ASTO        char(10)       NULL,                    
 CO_PROV    varchar(20)    NULL,                    
 NO_CORT_PROV   char(50)       NULL,                    
 NU_RUCS_PROV   char(11)       NULL,                    
 CO_MONE        char(03)       NULL,                    
 FA_CAMB        Numeric(9,4)   NULL,                    
 IM_INAF_ORIG   Numeric(16,4)  NULL,                    
 IM_AFEC_ORIG   Numeric(16,4)  NULL,                    
 IM_IIGV_ORIG   Numeric(16,4)  NULL,                    
 IM_FONA_ORIG   Numeric(16,4)  NULL,              
 IM_RENT_ORIG   Numeric(16,4)  NULL,                    
 IM_TOTA_ORIG   Numeric(16,4)  NULL,                    
                    
 IM_AFEC_CNTB   Numeric(16,4)  NULL,                    
 IM_BASE_NGRA   Numeric(16,4)  NULL,                    
 IM_BASE_SDCF   Numeric(16,4)  NULL,                    
 IM_INAF_CNTB   Numeric(16,4)  NULL,                    
 IM_BASE_RXHH   Numeric(16,4)  NULL,                    
                    
 IM_IIGV_CNTB   Numeric(16,4)  NULL,                    
 IM_IIGV_NGRA   Numeric(16,4)  NULL,                    
 IM_IIGV_SDCF   Numeric(16,4)  NULL, 
 IM_RENT_CNTB   Numeric(16,4)  NULL,                    
 IM_IESS_CNTB   Numeric(16,4)  NULL,                    
 IM_TOTA_CNTB   Numeric(16,4)  NULL,                    
                    
 IM_FONA_CNTB   Numeric(16,4)  NULL,                    
 IM_IIGV_IISC   Numeric(16,4)  NULL,                                                           
 ST_RETE_AUXI   Char(01)       NULL,                    
 ST_RETE_DOCU   Char(01)       NULL,                    
 ST_RETE_BCON   Char(01)       NULL,                    
 ST_STAT        Char(1)        NULL,                    
 CO_AUXI_EMPR   VarChar(20)    NULL,                    
 ST_NDEB        Char(01)       NULL,                    
 NU_DOCU_REFE   VarChar(20)    NULL,                    
 FE_DOCU_REFE   datetime       NULL,                   
 ST_DETR        Varchar(2)     NULL,                
 PO_IMPT        Numeric(9,4)   NULL, --para el tipo de impuesto 18,19..                
 FE_0001        DateTime       NULL,             
 IM_AFEC_CNT1   Numeric(16,4)  NULL,
 TI_DOCU_REF1   Varchar(03)    NULL,                    
 NU_DOCU_REF1   Varchar(20)    NULL,
 FE_DOCU_REF1   DateTime    NULL
 )                    
                    
Declare                     
@VSNU_ASTO_BASE   char(18),                    
@VSCO_MONE_BASE   TD_VC_003,           
@VSCO_MONE_BAS1   TD_VC_003,                    
@VNIM_TOTA_BASX   TD_NU_016_004,                    
@VNIM_TOTA_BASY   TD_NU_016_004,                    
@VDFE_DOCU   TD_DT_001,                    
@VSTI_DOCU_CNTB   TD_VC_003,                    
@VSNU_DOCU   TD_VC_020,                    
@VSCO_UNID   TD_VC_003,                    
@VSCO_OPRC   TD_VC_003,                    
@VSNU_ASTO   TD_VC_010,                    
@VSCO_PROV   TD_VC_020,                    
@VSNO_CORT_PROV   TD_VC_050,                    
@VSNU_RUCS_PROV   TD_VC_020,                    
@VSCO_MONE   TD_VC_003,                    
@VNIM_INAF_ORIX   TD_NU_016_004,                    
@VNIM_AFEC_ORIX   TD_NU_016_004,                    
@VNIM_IIGV_ORIX   TD_NU_016_004,                    
@VNIM_FONA_ORIX   TD_NU_016_004,                    
@VNIM_RENT_ORIX   TD_NU_016_004,                    
@VNIM_TOTA_ORIX   TD_NU_016_004,                    
@VNIM_INAF_CNTX   TD_NU_016_004,                    
@VNIM_AFEC_CNTX   TD_NU_016_004,                    
@VNIM_IIGV_CNTX   TD_NU_016_004,                    
@VNIM_FONA_CNTX   TD_NU_016_004,                    
@VNIM_RENT_CNTX   TD_NU_016_004,                    
@VNIM_TOTA_CNTX   TD_NU_016_004,                    
@VNFA_CAMB   TD_NU_009_004,                    
@VNIM_IIGV_ORIG   TD_NU_016_004,                    
@VNIM_FONA_ORIG   TD_NU_016_004,                    
@VNIM_RENT_ORIG   TD_NU_016_004,                    
@VNIM_TOTA_ORIG   TD_NU_016_004,                    
@VNIM_IIGV_CNTB   TD_NU_016_004,                    
@VNIM_FONA_CNTB   TD_NU_016_004,                    
@VNIM_RENT_CNTB   TD_NU_016_004,                    
@VNIM_TOTA_CNTB   TD_NU_016_004,                    
                    
@CNPO_IGV1        TD_NU_009_004,                    
@CNPO_IGV2   TD_NU_009_004,                    
@CNPO_REN1   TD_NU_009_004,                    
@CNPO_REN2   TD_NU_009_004,                    
                    
@VSCO_OPR1   TD_VC_003,                    
@VSCO_OPR2   TD_VC_003,                    
@VSID_COMP    TD_VC_003,                    
@VSID_IIGV    TD_VC_003,                    
@VSID_FONA    TD_VC_003,                
@VSID_RENT    TD_VC_003,                    
@VSID_CUAR    TD_VC_003,                    
@VSTI_DOCU_AUXI   char(06),                    
@VSCO_SUNA        TD_VC_002,                    
@CSID_CNTA    TD_VC_003,                    
@CDFE_DOCU   TD_DT_001,                    
@CSTI_DOCU_CNTB   TD_VC_003,                    
@CSNU_DOCU   TD_VC_020,        @CSCO_UNID   TD_VC_003,                    
@CSCO_OPRC   TD_VC_003,       
--@CSNU_ASTO   TD_VC_010,                    
@CSCO_AUXI   TD_VC_020,                    
@CSCN_CNTB_EMPR   TD_VC_010,                    
@CSTI_OPER_CNTB   TD_VC_003,                    
@CSCO_MONE   TD_VC_003,                    
@CNFA_CAMB   TD_NU_009_004,                    
@CNIM_MVTO_ORIG   TD_NU_016_004,                    
@CNIM_MVTO_CNTB   TD_NU_016_004,                    
@CSNU_DOCU_REFE   TD_VC_020,                    
@CDFE_DOCU_REFE TD_DT_001,                    
                    
@VSNO_DOCU        TD_VC_050,                    
@CSTI_AUXI_EMPR   TD_VC_001,                    
@VSST_RETE_DOCU   TD_VC_001,                    
@VSST_RETE_AUXI   TD_VC_001,                    
@VNIM_MAXI_NRET   TD_NU_016_004,                    
@VSST_STAT        TD_VC_001,                    
@VSST_BCON_AUXI   TD_VC_001,                    
@VSST_DETR        TD_VC_001,                    
                    
                    
@VSNU_DOCU_REFE   TD_VC_020,                    
@VDFE_DOCU_REFE   TD_DT_001,                    
                    
@VNIM_MVTO_CNTB   TD_NU_016_004,                    
@CSNU_ASTO   TD_VC_010,                    
@CSCO_OPRC_CNTB   TD_VC_003,                    
@VNIM_TOTA   TD_NU_016_004,                    
@CSCO_UNID_CNTB   TD_VC_003,                    
----------------------------------------                    
@VSNU_CNTB_EMPR  TD_VC_001,                    
@VSNU_ANNO       TD_VC_004,                    
@VSNU_MESE_INIC  TD_VC_002,                    
@VSNU_MESE_FINA  TD_VC_002,                    
@VSCO_SUNA_NOCR  TD_VC_002,                    
@VSCO_SUNA_0001  TD_VC_002,                    
@VNNU_MESE       TD_IN_002_MESE,                    
@CNNU_MESE       TD_IN_002_MESE,                    
                    
@VNPO_IGV1        TD_NU_009_004,                    
@VNPO_IGV1_ANNO   TD_NU_009_004,                    
@VNPO_IGV2_ANNO   TD_NU_009_004,                    
@VNPO_REN1        TD_NU_009_004,                    
@VNPO_REN2        TD_NU_009_004,                    
@CSTI_DOCU_REFE   TD_VC_003,                  
@VSTI_DOCU   TD_VC_003,                  
@VDFE_DOCU_0001  TD_DT_001,                  
@VSNU_DOCU_0001  TD_VC_020,                  
@VNPO_IGV2   TD_NU_009_004,                
                
@VNPO_IGV1_0001        TD_NU_009_004, --segun el tipo de igv             
@CSCO_EMPR   TD_VC_002,  -- para la empresa                
              
@VNID_IIES TD_IN_001, -- ID IES              
@VNID_IIGV TD_IN_001, -- ID IGV              
@VNID_COMP TD_IN_001, -- ID COMPRAS              
@VNID_RENT TD_IN_001, -- ID IMP. RENTA              
@VNID_NDOM TD_IN_001, -- ID IMP. RENTA NO DOMICILIADO
@VNID_GAST TD_IN_001, -- ID GASTO NO GRAVABLE
@VNIM_IIES_ORIG TD_NU_016_004,  -- IMPORTE IES              
@VNIM_IIES_CNTX TD_NU_016_004,  -- IMPORTE IES              
@VNIM_TOTA_ORIG_AUXI TD_NU_016_004,   -- IMPORTE IES              
@VNIM_TOTA_CNTB_AUXI TD_NU_016_004,   -- IMPORTE IES              
@CDFE_ASTO_CNTB TD_DT_001,             
@VDFE_ASTO_CNTB TD_DT_001,             
@CSTI_CAMB TD_VC_003,             
@VSTI_CAMB_BASE TD_VC_003,  --- ES DE LA CTA '42X'            
@VNIM_0001 TD_NU_016_004,           
@VSCO_EMPR_0001 TD_VC_002,           
          
/*-----*/            
@VNIM_TOTA_CONT TD_NU_016_004,          
@VNIM_IIGV_CONT TD_NU_016_004,          
@VNIM_CONT_BASX TD_NU_016_004,                         
@VNIM_CONT_BASY TD_NU_016_004, 
@VNIM_AFEC_CONX TD_NU_016_004,          
@VNIM_INAF_CONX TD_NU_016_004,   
@VNIM_FONA_CONT TD_NU_016_004,           
@VNIM_RENT_CONT TD_NU_016_004,        
@VNIM_IIES_CONT TD_NU_016_004,          
@VNIM_TOTA_CONT_AUXI TD_NU_016_004,       
@VNIM_BASE_RXHH TD_NU_016_004,       

@VNIM_RENO_ORIG TD_NU_016_004,       
@VNIM_RENO_CONT TD_NU_016_004,       
@VNIM_RENO_ORIX TD_NU_016_004,       
@VNIM_RENO_CNTX TD_NU_016_004,       
@VNIM_BASE_NDOM TD_NU_016_004, 
@VNIM_GAST_ORIG TD_NU_016_004,       
@VNIM_GAST_CONT TD_NU_016_004,      
@CSST_CNTA_CAMB TD_VC_003,
@VSID_RENT_NDOM TD_VC_003,
@VSID_GAST_NGRA TD_VC_003,
@VSCO_SUNA_VARI TD_VC_002,
@VDFE_0001         TD_DT_001,
@VSCO_SUNA_LIQU    TD_VC_002,
@VSCO_SUNA_POLI    TD_VC_002,
@VSCO_SUNA_SERV    TD_VC_002,
@VDFE_PAGO         TD_DT_001,
@CDFE_DOCU_VENC    TD_DT_001,
@VSTI_DOCU_REF1    TD_VC_003,
@VSNU_DOCU_REF1    TD_VC_020,
@CSTI_DOCU_REF1    TD_VC_003,
@CSNU_DOCU_REF1    TD_VC_020,
@CDFE_DOCU_REF1    TD_DT_001,
@VDFE_DOCU_REF1    TD_DT_001,
@VSTI_PERS_SUNA    TD_VC_003

                     
Select @VNIM_TOTA_CONT = 0.00          
Select @VNIM_IIGV_CONT = 0.00          
Select @VNIM_AFEC_CONX = 0.00          
Select @VNIM_INAF_CONX = 0.00          
Select @VNIM_FONA_CONT = 0.00          
Select @VNIM_RENT_CONT = 0.00          
Select @VNIM_IIES_CONT = 0.00          
Select @VNIM_TOTA_CONT_AUXI = 0.00          
Select @VNIM_BASE_RXHH = 0.00      
Select @VNIM_BASE_NDOM = 0.00      
                    
/*----- Inicializando las variables -----*/                    
Select @VNIM_IIGV_ORIG = 0.00   Select @VNIM_FONA_ORIG = 0.00                    
Select @VNIM_RENT_ORIG = 0.00   Select @VNIM_TOTA_ORIG = 0.00                    
Select @VDFE_DOCU      = Null   Select @VSTI_DOCU_CNTB = Null                    
Select @VSNU_ASTO      = Null   Select @VSCO_PROV      = Null                    
Select @VSNO_CORT_PROV = Null   Select @VSNU_RUCS_PROV = Null                    
Select @VSCO_MONE      = Null   Select @VNIM_AFEC_ORIX = 0.00                    
Select @VNIM_INAF_ORIX = 0.00   Select @VNIM_IIGV_ORIX = 0.00                    
Select @VNIM_FONA_ORIX = 0.00   Select @VNIM_RENT_ORIX = 0.00                    
Select @VNIM_TOTA_ORIX = 0.00   Select @VNIM_AFEC_CNTX = 0.00                    
Select @VNIM_INAF_CNTX = 0.00   Select @VNIM_IIGV_CNTX = 0.00                    
Select @VNIM_FONA_CNTX = 0.00   Select @VNIM_RENT_CNTX = 0.00                  
Select @VNIM_TOTA_ORIX = 0.00   Select @VNFA_CAMB      = 0.00                    
Select @VNIM_MAXI_NRET = 0.00   Select @VSST_STAT ='S'                    
Select @VDFE_DOCU_REFE = Null   Select @VSNU_DOCU_REFE = Null                   
Select @VSCO_SUNA_NOCR = Null   Select @VNPO_IGV1_0001 = 0.00              
Select @VNIM_IIES_ORIG = 0.00            
Select @VNIM_IIES_CNTX = 0.00             
Select @VSTI_CAMB_BASE = NULL              
Select @VDFE_ASTO_CNTB = NULL              
Select @VSID_RENT_NDOM = ''
Select @VSID_GAST_NGRA = ''
Select @VNIM_RENO_ORIG = 0
Select @VNIM_RENO_CONT = 0
Select @VNIM_RENO_ORIX = 0
Select @VNIM_RENO_CNTX = 0
Select @VNIM_GAST_CONT = 0
Select @VNIM_GAST_ORIG = 0
Select @VDFE_0001 = NULL  
Select @VSTI_DOCU_REF1 = NULL
Select @VSNU_DOCU_REF1 = NULL
Select @VDFE_DOCU_REF1 = NULL
Select @VSTI_PERS_SUNA = NULL
                    
              
/*-- Obteniendo datos de Nro. de Contabilidad  -----*/                    
Select @VSCO_MONE_BAS1 = CO_MONE,                    
       @VSID_COMP      = ID_COMP,                      
       @VSID_IIGV      = ID_IMPT_VENT,                     
       @VSID_FONA      = ID_FONA,                     
--       @VSID_RENT      = ID_IMPT_RENT,               
       @VSID_RENT      = ID_CUAR,
--       @VSID_CUAR      = ID_CUAR                 
@VSID_RENT_NDOM = IsNull(ID_RENT_NDOM,''),
@VSID_GAST_NGRA = IsNull(ID_GAST_NGRA,'')
From  TTCNTB_EMPR                    
Where CO_EMPR = @ISCO_EMPR                     
And   NU_CNTB_EMPR = @INNU_CNTB_EMPR              
                   
Select @VNIM_MAXI_NRET = IM_MAXI_NRET,                   
@VSCO_SUNA_NOCR = CO_SUNA_NOCR,
@VSCO_SUNA_LIQU = IsNull(Rtrim(Ltrim(CO_SUNA_LIQU)),''),
@VSCO_SUNA_POLI = IsNull(Rtrim(Ltrim(CO_SUNA_POLI)),''),
@VSCO_SUNA_SERV = IsNull(Rtrim(Ltrim(CO_SUNA_SERV)),'')                  
From TMPARA_CONT                    
Where CO_EMPR = @ISCO_EMPR          
           
Select @CNPO_IGV1 = 0.00  Select @CNPO_IGV2 = 0.00                    
Select @CNPO_REN1 = 0.00  Select @CNPO_REN2 = 0.00                    
                    
/*----- Cursor para el reporte de Registro de Compras -----*/                    
Select @VSNU_CNTB_EMPR = Convert(Varchar(1),@INNU_CNTB_EMPR)                    
Select @VSNU_ANNO = Convert(Varchar(4),@INNU_ANNO )               
Select @VSNU_MESE_INIC = Convert(Varchar(2),@INNU_MESE_INIC )                    
Select @VSNU_MESE_FINA = Convert(Varchar(2),@INNU_MESE_FINA )                    
                  
                  
-- OBTENGO EL IGV ANTES DE DEFINIR EL CURSOR                  
                  
SELECT @VNPO_IGV1_ANNO = PO_IMPT_VEN1,                  
       @VNPO_IGV2_ANNO = PO_IMPT_VEN2,                   
       @VNPO_REN1 = PO_IMPT_REN1,                  
       @VNPO_REN2 = PO_IMPT_REN2                  
From  TTPORC_IMPT                  
Where CO_EMPR = @ISCO_EMPR                  
And   NU_ANNO = @INNU_ANNO         
And   NU_MESE = @INNU_MESE_FINA                  
                  
If @VNPO_IGV1_ANNO IS Null                  
 Select @VNPO_IGV1_ANNO = 0.00                  
If @VNPO_IGV2_ANNO IS Null                  
 Select @VNPO_IGV2_ANNO = 0.00                  
If @VNPO_REN1 IS Null                  
 Select @VNPO_REN1 = 0.00                  
If @VNPO_REN2 IS Null                  
 Select @VNPO_REN2 = 0.00                  
                  
              
Select @VNID_IIES = 0                
Select @VNID_RENT = 0              
Select @VNID_NDOM = 0              
Select @VNID_GAST = 0              

Exec('Declare CU_TXMVTO_CNTB_Q48_1 Cursor For
Select  TXMVTO_CNTB.FE_DOCU, TXMVTO_CNTB.TI_DOCU, TXMVTO_CNTB.NU_DOCU, TXMVTO_CNTB.CO_UNID_CNTB,                     
TXMVTO_CNTB.CO_OPRC_CNTB, TXMVTO_CNTB.NU_MESE, TXMVTO_CNTB.NU_ASTO, TXMVTO_CNTB.TI_AUXI_EMPR,                     
TXMVTO_CNTB.CO_AUXI_EMPR, TXMVTO_CNTB.CO_CNTA_EMPR, TXMVTO_CNTB.TI_OPER, TXMVTO_CNTB.CO_MONE,                      
TXMVTO_CNTB.FA_CAMB, TXMVTO_CNTB.IM_MVTO_ORIG, TXMVTO_CNTB.IM_MVTO_CNTB, TTIDEN_CNTA.ID_CNTA,       
IsNull(TTPORC_IMPT.PO_IMPT_REN1,0), IsNull(TTPORC_IMPT.PO_IMPT_REN2,0),                     
IsNull(TTPORC_IMPT.PO_IMPT_VEN1,0), IsNull(TTPORC_IMPT.PO_IMPT_VEN2,0), 
TXMVTO_CNTB.TI_DOCU_DETR, TXMVTO_CNTB.NU_DOCU_DETR, TXMVTO_CNTB.FE_DOCU_DETR, 
TXMVTO_CNTB.CO_EMPR,             
TXMVTO_CNTB.FE_ASTO_CNTB, TXMVTO_CNTB.TI_CAMB, TMPLAN_ANNO.ST_CNTA_CAMB,
TXMVTO_CNTB.FE_DOCU_VENC, TI_DOCU_REFE,NU_DOCU_REFE,FE_DOCU_REFE
From 
 (Select tY.CO_EMPR,tY.NU_CNTB_EMPR,tY.CO_UNID_CNTB,tY.CO_OPRC_CNTB,tY.NU_ANNO,tY.NU_MESE,tY.NU_ASTO 
       From TXMVTO_CNTB tY
       Where tY.CO_EMPR = "' + @ISCO_EMPR + '"
       And tY.NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + '
       And tY.CO_OPRC_CNTB In (                    
     Select T1.CO_OPRC_CNTB From TTIDEN_OPER T1 
     Where T1.CO_EMPR = tY.CO_EMPR 
     And T1.NU_CNTB_EMPR = tY.NU_CNTB_EMPR 
     And T1.ID_OPRC   = "' + @VSID_COMP + '" )                     
     And tY.NU_ANNO  = ' + @VSNU_ANNO + '                    
     And tY.TI_AUXI_EMPR = "' + @ISTI_AUXI_EMPR + '" 
     And tY.CO_AUXI_EMPR = "' + @ISCO_AUXI_EMPR + '" 
     And tY.TI_DOCU = "' + @ISTI_DOCU + '" 
     And tY.NU_DOCU = "' + @ISNU_DOCU + '" 
     And tY.SI_MVTO_CNTB = "APR"   
       ) tX,  TXMVTO_CNTB
Left Outer Join TTPORC_IMPT 
On TTPORC_IMPT.CO_EMPR = TXMVTO_CNTB.CO_EMPR                     
And TTPORC_IMPT.NU_ANNO = TXMVTO_CNTB.NU_ANNO                     
And TTPORC_IMPT.NU_MESE = TXMVTO_CNTB.NU_MESE, TTIDEN_CNTA, TMPLAN_ANNO                     

Where tX.CO_EMPR = TXMVTO_CNTB.CO_EMPR
 And tX.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR
 And tX.CO_UNID_CNTB = TXMVTO_CNTB.CO_UNID_CNTB
 And tX.CO_OPRC_CNTB = TXMVTO_CNTB.CO_OPRC_CNTB
 And tX.NU_ANNO = TXMVTO_CNTB.NU_ANNO
 And tX.NU_MESE = TXMVTO_CNTB.NU_MESE
 And tX.NU_ASTO = TXMVTO_CNTB.NU_ASTO
 And ((TXMVTO_CNTB.CO_CNTA_EMPR In ( 
     Select T2.CO_CNTA_EMPR From TTIDEN_CNTA T2 
     Where T2.CO_EMPR = TXMVTO_CNTB.CO_EMPR 
     And T2.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR 
     And T2.ID_CNTA = "' + @VSID_COMP + '" )  )                
 Or (TXMVTO_CNTB.CO_CNTA_EMPR In ( 
     Select T2.CO_CNTA_EMPR From TTIDEN_CNTA T2 
     Where T2.CO_EMPR = TXMVTO_CNTB.CO_EMPR 
  And T2.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR 
  And T2.ID_CNTA In ("' + @VSID_IIGV + '", "' + @VSID_RENT + '", "' + @VSID_FONA + '", "' + @VSID_RENT_NDOM + '", "' + @VSID_GAST_NGRA + '"  ) )
)) 
 And TXMVTO_CNTB.SI_MVTO_CNTB = "APR" 
 And TTIDEN_CNTA.CO_EMPR   = TXMVTO_CNTB.CO_EMPR 
 And TTIDEN_CNTA.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR 
 And TTIDEN_CNTA.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR 
 And TMPLAN_ANNO.CO_EMPR = TXMVTO_CNTB.CO_EMPR
 And TMPLAN_ANNO.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR 
 Union All 
 Select Null, Null, Null, "99", "999", 99, "9999999999", Null, Null, 
 Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null,NULL, Null,NULL,NULL 
 Order By 4,5,6,7 ASC, 16 Asc, 10 DESC ,8,9 ASC ' )   
                    
Open CU_TXMVTO_CNTB_Q48_1                    
Fetch CU_TXMVTO_CNTB_Q48_1 into                     
    @CDFE_DOCU, @CSTI_DOCU_CNTB, @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CNNU_MESE,                     
    @CSNU_ASTO, @CSTI_AUXI_EMPR, @CSCO_AUXI, @CSCN_CNTB_EMPR, @CSTI_OPER_CNTB,                     
    @CSCO_MONE, @CNFA_CAMB, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSID_CNTA,                    
    @CNPO_REN1, @CNPO_REN2, @CNPO_IGV1,      @CNPO_IGV2,  @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CDFE_DOCU_REFE,                
    @CSCO_EMPR, @CDFE_ASTO_CNTB, @CSTI_CAMB, @CSST_CNTA_CAMB,@CDFE_DOCU_VENC,
    @CSTI_DOCU_REF1,@CSNU_DOCU_REF1,@CDFE_DOCU_REF1

                    
Select @VSNU_ASTO_BASE = Null                    
Select @VSCO_MONE_BASE = Null                    
                    
While @@Fetch_status = 0                    
Begin                    
                 
 /*----- Actualiza Temporal -----*/                    
 If @VSNU_ASTO_BASE != Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) +                     
    Substring( Convert(Varchar(2),100 + @CNNU_MESE),2,2) + Rtrim(@CSNU_ASTO)                     
    And @VSCO_MONE_BASE IS NOT Null                    
 Begin                    
  Select @VNIM_TOTA_BASX = Round(@VNIM_TOTA_ORIG - @VNIM_IIGV_ORIG,2)         
  Select @VNIM_TOTA_BASY = Round(@VNIM_IIGV_ORIG / ((@VNPO_IGV1 + @VNPO_IGV2) / 100), 2)         
  Select @VNIM_CONT_BASX = Round(@VNIM_TOTA_CONT - @VNIM_IIGV_CONT,2)                          
  Select @VNIM_CONT_BASY = Round(@VNIM_IIGV_CONT / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2)                          
                   
  If Abs(Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)) > 0.50                    
  Begin                    
    Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASY,2)                    
    Select @VNIM_INAF_ORIX = Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)      
    Select @VNIM_AFEC_CONX = Round(@VNIM_CONT_BASY,2)                          
    Select @VNIM_INAF_CONX = Round(@VNIM_CONT_BASX - @VNIM_CONT_BASY,2)                          
  End                    
  Else                   
  Begin                    
    Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASX,2)                    
    Select @VNIM_INAF_ORIX = 0.00                    
    Select @VNIM_AFEC_CONX = Round(@VNIM_CONT_BASX,2)                          
    Select @VNIM_INAF_CONX = 0.00                          
  End                    
                    
  If @VSCO_MONE != @VSCO_MONE_BAS1                    
  Begin                  
    Select @VNIM_IIGV_ORIX = @VNIM_IIGV_ORIG                    
    Select @VNIM_FONA_ORIX = @VNIM_FONA_ORIG                    
    Select @VNIM_RENT_ORIX = @VNIM_RENT_ORIG                    
    Select @VNIM_RENO_ORIX = @VNIM_RENO_ORIG     
    Select @VNIM_TOTA_ORIX = @VNIM_TOTA_ORIG + (@VNIM_FONA_ORIX + @VNIM_RENT_ORIX)              
            
    Select @VNIM_AFEC_CNTX = @VNIM_AFEC_CONX          
    Select @VNIM_INAF_CNTX = @VNIM_INAF_CONX          
    Select @VNIM_IIGV_CNTX = @VNIM_IIGV_CONT          
          
    Select @VNIM_FONA_CNTX = @VNIM_FONA_CONT          
    Select @VNIM_RENT_CNTX = @VNIM_RENT_CONT          
    Select @VNIM_RENO_CNTX = @VNIM_RENO_CONT          
    Select @VNIM_TOTA_CNTX = @VNIM_TOTA_CONT + @VNIM_FONA_CONT + @VNIM_RENT_CONT               
    Select @VNIM_IIES_CNTX = @VNIM_IIES_CONT          
    Select @VNIM_TOTA_CNTB_AUXI = @VNIM_TOTA_CONT_AUXI          
              
  End            
  Else                    
  Begin                    
    Select @VNIM_AFEC_CNTX = Round(@VNIM_AFEC_ORIX,2)                    
    Select @VNIM_INAF_CNTX = Round(@VNIM_INAF_ORIX,2)                    
    Select @VNIM_IIGV_CNTX = Round(@VNIM_IIGV_ORIG,2)                    
    Select @VNIM_FONA_CNTX = Round(@VNIM_FONA_ORIG,2)                    
    Select @VNIM_RENT_CNTX = Round(@VNIM_RENT_ORIG,2)                    
    Select @VNIM_RENO_CNTX = Round(@VNIM_RENO_ORIG,2)                    
    Select @VNIM_TOTA_CNTX = Round((@VNIM_TOTA_ORIG + (@VNIM_FONA_ORIX +@VNIM_RENT_ORIX)),2)                    
    Select @VNIM_AFEC_ORIX = 0.00
    Select @VNIM_INAF_ORIX = 0.00
    Select @VNIM_IIGV_ORIX = 0.00
    Select @VNIM_FONA_ORIX = 0.00
    Select @VNIM_RENT_ORIX = 0.00
    Select @VNIM_RENO_ORIX = 0.00
    Select @VNIM_TOTA_ORIX = 0.00
    Select @VNFA_CAMB = Null
              
    Select @VNIM_IIES_CNTX = Round(@VNIM_IIES_ORIG,2)              
    Select @VNIM_TOTA_CNTB_AUXI = Round(@VNIM_TOTA_ORIG_AUXI,2)              
              
  End                
              
-- CASO IMPUESTO A LA RENTA 4TA CATEGORIA
If @VNID_IIES = 1 Or @VNID_RENT = 1               
  Begin               
 Select @VNIM_AFEC_CNTX = @VNIM_TOTA_CNTB_AUXI + Abs(@VNIM_RENT_CNTX) + Abs(@VNIM_IIES_CNTX)              
-- RECIBOS POR HONORARIOS      
 Select @VNIM_BASE_RXHH = @VNIM_AFEC_CNTX      
 Select @VNIM_AFEC_CNTX = 0      
-- RECIBOS POR HONORARIOS      
 Select @VNIM_RENT_ORIG = Abs(@VNIM_RENT_ORIG)              
 Select @VNIM_RENT_CNTX = Abs(@VNIM_RENT_CNTX)
 Select @VNIM_IIES_CNTX = Abs(@VNIM_IIES_CNTX)              
 Select @VNIM_IIES_ORIG = Abs(@VNIM_IIES_ORIG)              
 Select @VNIM_INAF_CNTX = 0              
 Select @VNIM_TOTA_CNTX = @VNIM_TOTA_CNTB_AUXI               
              
  If @VSCO_MONE != @VSCO_MONE_BAS1               
  Begin                
      Select @VNIM_AFEC_ORIX = 0--@VNIM_TOTA_ORIG_AUXI + Abs(@VNIM_RENT_ORIG) + Abs(@VNIM_IIES_ORIG)              
      Select @VNIM_INAF_ORIX = 0.00
      Select @VNIM_TOTA_ORIX = @VNIM_TOTA_ORIG_AUXI               
  End              
End              


-- CASO IMPUESTO RENTA NO DOMICILIADOS
If @VNID_NDOM = 1 And @VSTI_PERS_SUNA = '03'--- CASO AUXILIAR ES NO DOMICILIADO
  Begin               
 Select @VNIM_AFEC_CNTX = @VNIM_TOTA_CNTB_AUXI + Abs(@VNIM_RENO_CNTX)
 Select @VNIM_BASE_NDOM = @VNIM_AFEC_CNTX      
 Select @VNIM_AFEC_CNTX = 0      
 Select @VNIM_RENO_ORIG = 0--Abs(@VNIM_RENO_ORIG)              
 Select @VNIM_RENO_CNTX = Abs(@VNIM_RENO_CNTX)              
 Select @VNIM_INAF_CNTX = 0              
 Select @VNIM_TOTA_CNTX = @VNIM_TOTA_CNTB_AUXI               
              
  If @VSCO_MONE != @VSCO_MONE_BAS1               
  Begin                
      Select @VNIM_AFEC_ORIX = 0--@VNIM_TOTA_ORIG_AUXI + Abs(@VNIM_RENO_ORIG) 
      Select @VNIM_INAF_ORIX = 0.00
      Select @VNIM_TOTA_ORIX = @VNIM_TOTA_ORIG_AUXI               
  End              
End  -- FIN CASO IMPUESTO RENTA NO DOMICILIADOS  

-- CASO GASTOS NO GRAVADOS
If @VNID_GAST = 1
  Begin               
 Select @VNIM_AFEC_CNTX = Round(@VNIM_IIGV_CONT / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2)
 Select @VNIM_INAF_CNTX = IsNull(@VNIM_GAST_CONT,0)
 Select @VNIM_TOTA_CNTX = IsNull(@VNIM_AFEC_CNTX,0) + IsNull(@VNIM_INAF_CNTX,0) + IsNull(@VNIM_IIGV_CONT,0) ---@VNIM_TOTA_CNTB_AUXI               
              
  If @VSCO_MONE != @VSCO_MONE_BAS1               
  Begin 
      Select @VNIM_AFEC_ORIX = Round(@VNIM_IIGV_ORIG / ((@VNPO_IGV1 + @VNPO_IGV2) / 100), 2)
      Select @VNIM_INAF_ORIX = @VNIM_GAST_ORIG
      Select @VNIM_IIGV_ORIX = @VNIM_IIGV_ORIG
      Select @VNIM_TOTA_ORIX = @VNIM_AFEC_ORIX +  @VNIM_INAF_ORIX  + @VNIM_IIGV_ORIX           
  End          
End  -- FIN CASO gastos no gravados
              
If @VNID_COMP = 1 And @VNID_IIGV = 0 And @VNID_IIES = 0 And @VNID_RENT = 0 And @VNID_NDOM = 0 And @VNID_GAST = 0        
Begin       
 Select @VNIM_INAF_CNTX = @VNIM_AFEC_CNTX              
 Select @VNIM_AFEC_CNTX = 0                
 Select @VNIM_INAF_CNTX = @VNIM_TOTA_CNTX              
End              
-- FIN SE AUMENTO              
                    
  /*-- OBTENGO ESTATUS DE RETENCION DEL DOCUMENTO --*/                    
  Select @VSCO_SUNA = CO_SUNA, @VSNO_DOCU = NO_DOCU, @VSST_RETE_DOCU = ST_RETE                    
  From TTDOCU_CNTB                    
  Where TI_DOCU = @VSTI_DOCU_CNTB                    
                     
  Select @VSTI_DOCU_AUXI = @VSTI_DOCU_CNTB                    
                
---- CONVIERTO EL PORCENTAJE DEL CURSOR EN CARACTER ANTES DE INSERTAR A LA TEMPO --                
                
SELECT @VNPO_IGV1_0001 = ROUND(@VNPO_IGV1,2)                
                    
/*-- INGRESO ESTATUS DE RETENCION DEL DOCUMENTO Y AUXILIAR --*/                    
            
   Insert Into #TWMVTO_APAG_0004 (                    
   CO_EMPR, FE_DOCU     , TI_DOCU_SUNA, TI_DOCU_CNTB, NO_DOCU     , NU_DOCU     , CO_UNID_CNTB,                    
   CO_OPRC     , NU_ASTO     , CO_PROV     , NO_CORT_PROV, NU_RUCS_PROV, CO_MONE     ,                    
   FA_CAMB     , IM_INAF_ORIG, IM_AFEC_ORIG, IM_IIGV_ORIG, IM_FONA_ORIG, IM_RENT_ORIG,                    
   IM_TOTA_ORIG, IM_AFEC_CNTB, IM_BASE_NGRA, IM_BASE_SDCF, IM_INAF_CNTB, IM_BASE_RXHH,                    
   IM_IIGV_CNTB, IM_IIGV_NGRA, IM_IIGV_SDCF, IM_RENT_CNTB, IM_IESS_CNTB, IM_TOTA_CNTB,                    
   IM_FONA_CNTB, IM_IIGV_IISC, ST_RETE_AUXI, ST_RETE_DOCU, ST_RETE_BCON, ST_STAT     ,                    
   CO_AUXI_EMPR, ST_NDEB,      NU_DOCU_REFE, FE_DOCU_REFE, PO_IMPT,FE_0001,
   TI_DOCU_REF1,NU_DOCU_REF1,FE_DOCU_REF1)--, ST_DETR )                    
   Values( 
   @CSCO_EMPR, @VDFE_DOCU,     @VSCO_SUNA,      @VSTI_DOCU_AUXI, @VSNO_DOCU,      @VSNU_DOCU,      @VSCO_UNID,                    
   @VSCO_OPRC,      @VSNU_ASTO,      @VSCO_PROV,      @VSNO_CORT_PROV, @VSNU_RUCS_PROV, @VSCO_MONE,                    
   @VNFA_CAMB,      @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_IIGV_ORIX, @VNIM_FONA_ORIX, @VNIM_RENT_ORIX,                     
   @VNIM_TOTA_ORIX, @VNIM_AFEC_CNTX, 0              , @VNIM_BASE_NDOM   , @VNIM_INAF_CNTX, @VNIM_BASE_RXHH,    
   @VNIM_IIGV_CNTX, 0              , @VNIM_RENO_CNTX, @VNIM_RENT_CNTX, @VNIM_IIES_CNTX, @VNIM_TOTA_CNTX,                    
   @VNIM_FONA_CNTX, 0              , @VSST_RETE_AUXI, @VSST_RETE_DOCU, @VSST_BCON_AUXI, @VSST_STAT,                    
   '',  'N',       @VSNU_DOCU_REFE, @VDFE_DOCU_REFE, ROUND(@VNPO_IGV1_0001,2),@VDFE_0001,
   @VSTI_DOCU_REF1,@VSNU_DOCU_REF1,@VDFE_DOCU_REF1)--, @VSST_DETR )                    
            
   Select @VSTI_CAMB_BASE = NULL                
   Select @VDFE_ASTO_CNTB = NULL                
   Select @VSCO_MONE_BASE = Null   Select @VDFE_DOCU = Null                    
   Select @VSTI_DOCU_CNTB = Null   Select @VSNU_ASTO = Null                    
   Select @VSCO_PROV = Null        Select @VSNO_CORT_PROV = Null                    
   Select @VSNU_RUCS_PROV  = Null  Select @VSCO_MONE = Null                    
   Select @VNIM_IIGV_ORIG = 0.00   Select @VNIM_FONA_ORIG = 0.00                 
   Select @VNIM_RENT_ORIG = 0.00   Select @VNIM_TOTA_ORIG = 0.00                    
   Select @VNIM_AFEC_ORIX = 0.00 Select @VNIM_INAF_ORIX = 0.00                    
   Select @VNIM_IIGV_ORIX = 0.00   Select @VNIM_FONA_ORIX = 0.00                    
   Select @VNIM_RENT_ORIX = 0.00   Select @VNIM_TOTA_ORIX = 0.00                    
   Select @VNIM_AFEC_CNTX = 0.00   Select @VNIM_INAF_CNTX = 0.00                    
   Select @VNIM_IIGV_CNTX = 0.00   Select @VNIM_FONA_CNTX = 0.00                       
   Select @VNIM_RENT_CNTX = 0.00   Select @VNIM_TOTA_ORIX = 0.00                    
   Select @VNFA_CAMB = 0.00                    
   Select @VDFE_DOCU_REFE = Null   Select @VSNU_DOCU_REFE = Null                    
   Select @VNIM_IIES_ORIG = 0.00            
   Select @VNIM_IIES_CNTX = 0.00            
   Select @VNIM_RENO_ORIG = 0
   Select @VNIM_RENO_CONT = 0
   Select @VNIM_RENO_ORIX = 0
   Select @VNIM_RENO_CNTX = 0
   Select @VNIM_GAST_CONT = 0
   Select @VNIM_GAST_ORIG = 0
              
   Select @VNIM_TOTA_ORIG_AUXI = 0            
   Select @VNIM_TOTA_CNTB_AUXI = 0               
   Select @VNID_IIES = 0               
   Select @VNID_RENT = 0              
   Select @VNID_NDOM = 0              
   Select @VNID_IIGV = 0              
   Select @VNID_COMP = 0              
   Select @VNID_GAST = 0    
   Select @VDFE_0001 = NULL                        
          
/*-LEE DATOS CONTABLES----*/          
   Select @VNIM_TOTA_CONT = 0.00          
   Select @VNIM_IIGV_CONT = 0.00          
   Select @VNIM_AFEC_CONX = 0.00          
   Select @VNIM_INAF_CONX = 0.00          
   Select @VNIM_FONA_CONT = 0.00          
   Select @VNIM_RENT_CONT = 0.00          
   Select @VNIM_IIES_CONT = 0.00          
   Select @VNIM_TOTA_CONT_AUXI = 0.00          
   Select @VNIM_BASE_RXHH = 0.00      
   Select @VNIM_BASE_NDOM = 0.00      
   Select @VSTI_DOCU_REF1 = NULL
   Select @VSNU_DOCU_REF1 = NULL
   Select @VDFE_DOCU_REF1 = NULL
   Select @VSTI_PERS_SUNA = NULL

/*-LEE DATOS CONTABLES----*/          
          
         
 End -- (If @VSNU_ASTO_BASE != Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) +......)                    
                    
 /*-----  Acumula Movimientos - Provisiones -----*/                    
 Select @VSNU_ASTO_BASE = Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) +                      
  Substring( Convert(Varchar(2),100 + @CNNU_MESE),2,2) + RTrim(@CSNU_ASTO)                  
                  
        ------------------------------------------------------                  
-- OBTENGO EL CODIGO SUNAT DE LA TABLA DE DOCUMENTOS                  
 select @VSCO_SUNA_0001 = CO_SUNA                  
 FROM TTDOCU_CNTB                  
 WHERE TI_DOCU = @CSTI_DOCU_CNTB  

----- VALIDA NUEVOS CAMPOS FE_PAGO (FECHA PAGO ) Y FE_DOCU_VENC (FECHA VENC) DEL DOCUMENTO
--- VALIDA QUE LA LINEA TENGA DOCUMENTO Y QUE PERTENEZCA AL ID DE REG COMPRAS
--- PORQUE LA CUENTA DE IGV TAMBIEN LLEVA DOCUMENTO Y ESTA CUENTA NO DEBE TOMARSE EN CUENTA
--- PARA SACAR LOS DATOS DE FECHA DE PAGO
If IsNull(Rtrim(Ltrim(@CSTI_DOCU_CNTB)),'') != ''
And @VSID_COMP = @CSID_CNTA
Begin 

     Select @VDFE_PAGO = NULL
     Select @VDFE_PAGO = Max(FE_PAGO) 
     From TXMVTO_CNTB
     Where CO_EMPR = @ISCO_EMPR
     And NU_CNTB_EMPR = @INNU_CNTB_EMPR
     And NU_ANNO = @INNU_ANNO
     And NU_MESE = @INNU_MESE_INIC
     And CO_CNTA_EMPR = @CSCN_CNTB_EMPR
     And TI_AUXI_EMPR = @CSTI_AUXI_EMPR
     And CO_AUXI_EMPR = @CSCO_AUXI
     And TI_DOCU = @CSTI_DOCU_CNTB
     And NU_DOCU = @CSNU_DOCU
     And SI_MVTO_CNTB = 'APR'
     And CO_OPRC_CNTB Not In 
             (Select CO_OPRC_CNTB 
              From TTIDEN_OPER 
              Where CO_EMPR = @ISCO_EMPR 
              And NU_CNTB_EMPR = @INNU_CNTB_EMPR 
              And ID_OPRC = @VSID_COMP )


--- CASO SEA LIQU O POLIZA SOLO SE VISUALIZA LA FECHA DE PAGO NO SE VISUALIZA FECHA DE VENCIMIENTO 
If @VSCO_SUNA_0001 = @VSCO_SUNA_LIQU
Or @VSCO_SUNA_0001 = @VSCO_SUNA_POLI
Begin 
Select @VDFE_0001 = @VDFE_PAGO
End

--- CASO SEA SERVICIO DE SUMINISTRO SE COLOCA EL QUE SEA MENOR 
If @VSCO_SUNA_0001 = @VSCO_SUNA_SERV
Begin 
If @CDFE_DOCU_VENC < @VDFE_PAGO And @CDFE_DOCU_VENC IS NOT NULL And @VDFE_PAGO IS NOT NULL
Begin
Select @VDFE_0001 = @CDFE_DOCU_VENC
End 

If @VDFE_PAGO < @CDFE_DOCU_VENC And @CDFE_DOCU_VENC IS NOT NULL And @VDFE_PAGO IS NOT NULL
Begin
Select @VDFE_0001 = @VDFE_PAGO
End 

If @VDFE_PAGO = @CDFE_DOCU_VENC And @CDFE_DOCU_VENC IS NOT NULL And @VDFE_PAGO IS NOT NULL-- ??
Begin
Select @VDFE_0001 = @CDFE_DOCU_VENC
End 

If @CDFE_DOCU_VENC IS NULL And @VDFE_PAGO IS NOT NULL
Begin 
Select @VDFE_0001 = @VDFE_PAGO
End 

If @VDFE_PAGO IS NULL And @CDFE_DOCU_VENC IS NOT NULL
Begin 
Select @VDFE_0001 = @CDFE_DOCU_VENC
End 


End /*FIN If @VSCO_SUNA_0001 = @VSCO_SUNA_SERV*/

End /*FIN If IsNull(Rtrim(Ltrim(@CSTI_DOCU_CNTB)),'') != ''*/
----- FIN VALIDA NUEVOS CAMPOS FE_PAGO (FECHA PAGO ) Y FE_DOCU_VENC (FECHA VENC) DEL DOCUMENTO               
 If @CSTI_DOCU_CNTB is not null                
-- SI EL CO_SUNA DE LA TMPARA_CONT = CO_SUNA DE LA TTDOCU_CNTB                  
 IF  @VSCO_SUNA_NOCR = @VSCO_SUNA_0001                  
-- SE OBTIENE EL TIPO DOCUMENTO DE REFERENCIA, EL NUMERO Y LA FECHA DE LA FACTURA ORIGEN                  
  Begin                  

Select @VSTI_DOCU = @CSTI_DOCU_REF1
Select @VSNU_DOCU_0001 = @CSNU_DOCU_REF1
Select @VDFE_DOCU_0001 = @CDFE_DOCU_REF1
                   
    --SI EL MES DEL DOCUMENTO ES IGUAL AL MES DEL REPORTE                  
    IF Year(@VDFE_DOCU_0001) + MONTH(@VDFE_DOCU_0001) = @INNU_ANNO + @INNU_MESE_FINA                  
      Begin                  
        SELECT @VNPO_IGV1 = @VNPO_IGV1_ANNO                  
        SELECT @VNPO_IGV2 = @VNPO_IGV2_ANNO                  
      End                  
                  
    --SI EL MES DEL DOCUMENTO ES DIFERENTE AL MES DEL REPORTE                  
    If Year(@VDFE_DOCU_0001) + Month(@VDFE_DOCU_0001) != @INNU_ANNO + @INNU_MESE_FINA                  
      Select @VNPO_IGV1 = PO_IMPT_VEN1,                  
             @VNPO_IGV2 = PO_IMPT_VEN2                  
      From TTPORC_IMPT                  
      Where CO_EMPR = @ISCO_EMPR                  
      And   NU_ANNO = Year(@VDFE_DOCU_0001)                  
      And   NU_MESE = Month(@VDFE_DOCU_0001)                  
  End                  
 Else   -- IF  @VSCO_SUNA_NOCR <> @VSCO_SUNA_0001                  
  Begin                  
   IF Year(@CDFE_DOCU) + Month(@CDFE_DOCU) = @INNU_ANNO + @INNU_MESE_FINA       
    Begin                  
        SELECT @VNPO_IGV1 = @VNPO_IGV1_ANNO                  
        SELECT @VNPO_IGV2 = @VNPO_IGV2_ANNO                  
    End                  
                  
  --SI EL MES DEL DOCUMENTO ES DIFERENTE AL MES DEL REPORTE                  
  If Year(@CDFE_DOCU) + Month(@CDFE_DOCU) != @INNU_ANNO + @INNU_MESE_FINA                  
    Select @VNPO_IGV1 = PO_IMPT_VEN1,                  
           @VNPO_IGV2 = PO_IMPT_VEN2                  
    From TTPORC_IMPT                  
    Where CO_EMPR = @ISCO_EMPR                  
    And   NU_ANNO = Year(@CDFE_DOCU)                  
    And   NU_MESE = Month(@CDFE_DOCU)                  
 End --END DEL ELSE                  
 -- FIN DEL IF  @VSCO_SUNA_NOCR = @VSCO_SUNA_0001                  
------------------------------------------------------                                     
 -- Cuentas del Registro de Compras --------------                    
 If @CSID_CNTA = '001'                    
 Begin                  


-- VALIDA SI CODIGO SUNAT ES POLIZA DE IMPORTACION 
--- EXTRAE EL CODIGO SUNAT DEL DOCUMENTO DE LA 42x
Select @VSCO_SUNA_VARI = ''

Select @VSCO_SUNA_VARI = IsNull(CO_SUNA,'')
From TTDOCU_CNTB
Where TI_DOCU = @CSTI_DOCU_CNTB

Select @VSCO_EMPR_0001 = ''
Select @VSCO_EMPR_0001 = IsNull(RTrim(CO_EMPR),'')
From TTCOSU_POLI
Where CO_SUNA = @VSCO_SUNA_VARI 

If @VSCO_EMPR_0001 != ''
 Begin 
   Select @VNID_GAST = 1              
 End 


 Select @VNID_COMP = 1              
  If @VSCO_MONE_BASE IS Null                    
  Begin              
   /*-- OBTENGO ESTATUS DE RETENCION DEL AUXILIAR (PROVEEDOR) --*/                    
   Select @VSCO_PROV = CO_AUXI_EMPR,                    
          @VSNO_CORT_PROV = NO_AUXI,                      
          @VSNU_RUCS_PROV = NU_RUCS,                    
          @VSST_RETE_AUXI = ST_RETE,                    
          @VSST_BCON_AUXI = ST_BCON,                    
          @VSST_DETR      = ST_DETR,
          @VSTI_PERS_SUNA = IsNull(TI_PERS_SUNA,'')
   From TMAUXI_EMPR                    
 Where CO_EMPR = @ISCO_EMPR And                    
         TI_AUXI_EMPR = @CSTI_AUXI_EMPR And                    
         CO_AUXI_EMPR = @CSCO_AUXI                    
   If @@rowcount = 0                    
   Begin                    
    Select @VDFE_DOCU = Null                    
    Select @VSTI_DOCU_CNTB = Null                    
    Select @VSNU_DOCU = Null                    
    Select @VSCO_PROV = Null                     
    Select @VSNO_CORT_PROV = Null                    
    Select @VSNU_RUCS_PROV = Null                   
    Select @VDFE_DOCU_REFE = Null                       
    Select @VSNU_DOCU_REFE = Null                    
    Select @VSTI_DOCU_REF1 = NULL
    Select @VSNU_DOCU_REF1 = NULL
    Select @VDFE_DOCU_REF1 = NULL
  End                    
   Else                     
   Begin                    
    Select @VDFE_DOCU      = @CDFE_DOCU                    
    Select @VSTI_DOCU_CNTB = @CSTI_DOCU_CNTB                    
    Select @VSNU_DOCU      = @CSNU_DOCU              
    Select @VDFE_DOCU_REFE = @CDFE_DOCU_REFE                    
    Select @VSNU_DOCU_REFE = @CSNU_DOCU_REFE                  
    Select @VSTI_DOCU_REF1 = @CSTI_DOCU_REF1
    Select @VSNU_DOCU_REF1 = @CSNU_DOCU_REF1
    Select @VDFE_DOCU_REF1 = @CDFE_DOCU_REF1

   End                    
                    
   -- Si el Auxiliar est? sujeto a detracci?n, entonces NO retiene IGV,                     
   If @VSST_DETR = 'S'                    
      Select @VSST_RETE_AUXI = 'S'                    
                    
   Select @VSCO_UNID = @CSCO_UNID                     
   Select @VSCO_OPRC = @CSCO_OPRC                    
   Select @VSNU_ASTO = @CSNU_ASTO                    
   Select @VSCO_MONE = @CSCO_MONE                    
   Select @VNFA_CAMB = Round(@CNFA_CAMB,3)                    
   Select @VSCO_MONE_BASE = @CSCO_MONE                    
   Select @VSTI_CAMB_BASE = @CSTI_CAMB            
   Select @VDFE_ASTO_CNTB = @CDFE_ASTO_CNTB            
      
   If @VSTI_CAMB_BASE = 'PAC'      
 Begin       
    Select @VSTI_CAMB_BASE = @CSST_CNTA_CAMB 
        End        
      
                    
  End --( If @VSCO_MONE_BASE IS Null )                    
            
  If @VSCO_MONE_BASE IS NOT Null                    
  Begin                    
   If @VSCO_MONE_BASE != @CSCO_MONE                    
   Begin                    
      -- CASO EUROS             
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,             
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                  
   End                    
   If @CSTI_OPER_CNTB = 'ABO'                    
   Begin                    
    Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG + @CNIM_MVTO_ORIG,2)                    
    Select @VNIM_TOTA_ORIG_AUXI = Round( @VNIM_TOTA_ORIG_AUXI + @CNIM_MVTO_ORIG,2)            
    Select @VNIM_TOTA_CONT = Round(@VNIM_TOTA_CONT + @CNIM_MVTO_CNTB,2)                          
    Select @VNIM_TOTA_CONT_AUXI = Round(@VNIM_TOTA_CONT_AUXI + @CNIM_MVTO_CNTB,2)                          
   End                 
  Else If @CSTI_OPER_CNTB = 'CAR'                    
            
   Begin                    
    Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG - @CNIM_MVTO_ORIG,2)                   
    Select @VNIM_TOTA_ORIG_AUXI = Round( @VNIM_TOTA_ORIG_AUXI - @CNIM_MVTO_ORIG,2)            
    Select @VNIM_TOTA_CONT = Round(@VNIM_TOTA_CONT - @CNIM_MVTO_CNTB,2)                          
    Select @VNIM_TOTA_CONT_AUXI = Round(@VNIM_TOTA_CONT_AUXI - @CNIM_MVTO_CNTB,2)                          
   End                    
  End                    
                    
 End -- ( If @CSID_CNTA = '001' )                    
            
  /*-----  Acumula Movimientos - FONAVI   -----*/                     
 If @CSID_CNTA = '008'                    
 Begin                    
  If @VSCO_MONE_BASE IS NOT Null                    
  Begin                    
   Select @VNID_IIES = 1              
   If @VSCO_MONE_BASE != @CSCO_MONE                    
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,             
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                  
   If @CSTI_OPER_CNTB = 'CAR'         
    Begin           
    Select @VNIM_FONA_ORIG = Round(@VNIM_FONA_ORIG + @CNIM_MVTO_ORIG,2)                    
    Select @VNIM_FONA_CONT = Round(@VNIM_FONA_CONT + @CNIM_MVTO_CNTB,2)                          
    End           
   Else If @CSTI_OPER_CNTB = 'ABO'                    
    Begin           
    Select @VNIM_FONA_ORIG = Round(@VNIM_FONA_ORIG - @CNIM_MVTO_ORIG,2)                    
    Select @VNIM_FONA_CONT = Round(@VNIM_FONA_CONT - @CNIM_MVTO_CNTB,2)                 
    End            
  End                    
 End --( If @CSID_CNTA = '008' )            
                    
 /*-----  Acumula Movimientos - IGV  -----*/                    
 If @CSID_CNTA = '009'                    
 Begin                
  If @VSCO_MONE_BASE IS NOT Null                 
  Begin                    
  Select @VNID_IIGV = 1                  
   If @VSCO_MONE_BASE != @CSCO_MONE                    
   Begin                    
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,             
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                  
   End                    
   If @CSTI_OPER_CNTB = 'CAR'        
   Begin                    
    Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG + @CNIM_MVTO_ORIG,2) 
    Select @VNIM_IIGV_CONT = Round(@VNIM_IIGV_CONT + @CNIM_MVTO_CNTB,2)                          
   End                    
   Else If @CSTI_OPER_CNTB = 'ABO'                    
   Begin                    
    Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG - @CNIM_MVTO_ORIG,2)                    
    Select @VNIM_IIGV_CONT = Round(@VNIM_IIGV_CONT - @CNIM_MVTO_CNTB,2)                          
   End                    
  End                    
 End --( If @CSID_CNTA = '009' )                                  
                     
 /*-----   Acumula Movimientos - 4ta. CAT.   -----*/                    
/*  If @CSID_CNTA = '010'                    
  Begin                    
   If @VSCO_MONE_BASE IS NOT Null                    
   Select @VNID_RENT = 1              
   Begin                    
    If @VSCO_MONE_BASE != @CSCO_MONE             
    Begin            
     Select @CNIM_MVTO_ORIG = Round(@CNIM_MVTO_ORIG / @VNFA_CAMB,2)                    
    End               
    If @CSTI_OPER_CNTB = 'CAR'                    
    Begin                    
     Select @VNIM_RENT_ORIG = Round(@VNIM_RENT_ORIG + @CNIM_MVTO_ORIG,2)                    
    End                    
    Else If @CSTI_OPER_CNTB = 'ABO'                    
    Begin                    
     Select @VNIM_RENT_ORIG = Round(@VNIM_RENT_ORIG - @CNIM_MVTO_ORIG,2)                    
    End                  
   End -- (If @VSCO_MONE_BASE IS NOT Null)                    
  End */-- ( If @CSID_CNTA = '010' )                
            
   /*-----   Acumula Movimientos -  IES    -----*/              
    If @CSID_CNTA = '014'               
      Begin                
       If @VSCO_MONE_BASE IS NOT NULL              
        Begin               
          Select @VNID_IIES = 1                
          If @VSCO_MONE_BASE != @CSCO_MONE              
             Begin              
             Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,             
             @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                  
             End              
          If @CSTI_OPER_CNTB = 'CAR'              
             Begin                
             Select @VNIM_IIES_ORIG = Round( @VNIM_IIES_ORIG + @CNIM_MVTO_ORIG,2)              
            Select @VNIM_IIES_CONT = Round(@VNIM_IIES_CONT + @CNIM_MVTO_CNTB,2)                          
             End              
          If @CSTI_OPER_CNTB = 'ABO'               
             Begin               
             Select @VNIM_IIES_ORIG = Round( @VNIM_IIES_ORIG - @CNIM_MVTO_ORIG,2)              
             Select @VNIM_IIES_CONT = Round(@VNIM_IIES_CONT - @CNIM_MVTO_CNTB,2)                  
             End              
        End              
      End              
              
 /*-----   Acumula Movimientos - 4ta. CAT.   -----*/                    
  If @CSID_CNTA = '018'                    
  Begin                    
   If @VSCO_MONE_BASE IS NOT Null                    
   Begin                    
   Select @VNID_RENT = 1              
    If @VSCO_MONE_BASE != @CSCO_MONE                    
    Begin                    
         Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,             
         @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                  
    End                    
    If @CSTI_OPER_CNTB = 'CAR'             
    Begin             
     Select @VNIM_RENT_ORIG = Round(@VNIM_RENT_ORIG + @CNIM_MVTO_ORIG,2)                    
     Select @VNIM_RENT_CONT = Round(@VNIM_RENT_CONT + @CNIM_MVTO_CNTB,2)                          
    End                    
    Else If @CSTI_OPER_CNTB = 'ABO'                    
    Begin                    
     Select @VNIM_RENT_ORIG = Round(@VNIM_RENT_ORIG - @CNIM_MVTO_ORIG,2)                    
     Select @VNIM_RENT_CONT = Round(@VNIM_RENT_CONT - @CNIM_MVTO_CNTB,2)                          
    End                    
   End -- (If @VSCO_MONE_BASE IS NOT Null)                    
  End -- ( If @CSID_CNTA = '010' )                

 /*-----   Acumula Movimientos - impuesto renta No domiciliados	   -----*/                    
  If @CSID_CNTA = '033'                    
  Begin                    
   If @VSCO_MONE_BASE IS NOT Null 
   Begin               
   Select @VNID_NDOM = 1              
    If @VSCO_MONE_BASE != @CSCO_MONE                    
    Begin                    
         Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,             
         @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                  
    End                    
    If @CSTI_OPER_CNTB = 'CAR'                    
    Begin                    
     Select @VNIM_RENO_ORIG = Round(@VNIM_RENO_ORIG + @CNIM_MVTO_ORIG,2)                    
     Select @VNIM_RENO_CONT = Round(@VNIM_RENO_CONT + @CNIM_MVTO_CNTB,2)                          
    End                    
    Else If @CSTI_OPER_CNTB = 'ABO'                    
    Begin                    
     Select @VNIM_RENO_ORIG = Round(@VNIM_RENO_ORIG - @CNIM_MVTO_ORIG,2)                    
     Select @VNIM_RENO_CONT = Round(@VNIM_RENO_CONT - @CNIM_MVTO_CNTB,2)                          
    End                    
   End -- (If @VSCO_MONE_BASE IS NOT Null) 
  End -- ( If @CSID_CNTA = '010' )                

 /*-----   Acumula Movimientos - cuenta gastos despacho no gravados  -----*/                    
  If @CSID_CNTA = '034'                    
  Begin         
   If @VSCO_MONE_BASE IS NOT Null                    
   Begin                    
--   Select @VNID_GAST = 1              
    If @VSCO_MONE_BASE != @CSCO_MONE                    
    Begin                    
         Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,             
         @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                  
    End                    
    If @CSTI_OPER_CNTB = 'CAR'                    
    Begin                    
     Select @VNIM_GAST_ORIG = Round(@VNIM_GAST_ORIG + @CNIM_MVTO_ORIG,2)                    
     Select @VNIM_GAST_CONT = Round(@VNIM_GAST_CONT + @CNIM_MVTO_CNTB,2)                          
    End                    
    Else If @CSTI_OPER_CNTB = 'ABO'                    
    Begin                    
     Select @VNIM_GAST_ORIG = Round(@VNIM_GAST_ORIG - @CNIM_MVTO_ORIG,2)                    
     Select @VNIM_GAST_CONT = Round(@VNIM_GAST_CONT - @CNIM_MVTO_CNTB,2)      
    End                    
   End -- (If @VSCO_MONE_BASE IS NOT Null)        
  End -- ( If @CSID_CNTA = '010' )                
              
                        
Fetch CU_TXMVTO_CNTB_Q48_1 into                     
    @CDFE_DOCU, @CSTI_DOCU_CNTB, @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CNNU_MESE,                     
    @CSNU_ASTO, @CSTI_AUXI_EMPR, @CSCO_AUXI, @CSCN_CNTB_EMPR, @CSTI_OPER_CNTB,                     
    @CSCO_MONE, @CNFA_CAMB, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSID_CNTA,                    
    @CNPO_REN1, @CNPO_REN2, @CNPO_IGV1,      @CNPO_IGV2,      @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CDFE_DOCU_REFE,                
    @CSCO_EMPR, @CDFE_ASTO_CNTB, @CSTI_CAMB, @CSST_CNTA_CAMB,@CDFE_DOCU_VENC,
    @CSTI_DOCU_REF1,@CSNU_DOCU_REF1,@CDFE_DOCU_REF1
                    
 End                    
 Close CU_TXMVTO_CNTB_Q48_1                    
 Deallocate CU_TXMVTO_CNTB_Q48_1                    


Select @VNIM_VALO_BASE = IsNull(T1.IM_AFEC_CNTB,0) + IsNull(T1.IM_INAF_CNTB,0) + IsNull(T1.IM_BASE_SDCF,0) + IsNull(T1.IM_BASE_RXHH,0), 
@VNIM_VALO_IIGV = IsNull(T1.IM_IIGV_CNTB,0)
From #TWMVTO_APAG_0004 t1



/*----------------------------------------- Fin ------------------------------------------------------*/






























GO
